#!/bin/bash
read -p "输入用户名: " user_name
# user_name='lhc'

# 获取指定用户修改密码的日期
shadow_get=$(cat /etc/shadow | grep "$user_name" | cut -d ':' -f 3)
# 判断是否能正确获取该用户的密码更新时间，获取失败则报错
if [[ -z $shadow_get ]] 
    then echo "未获取到用户名 $username" 
    exit 1 
fi
# 获取修改密码的日期计数
shadow_day=$(date -d "1970-1-1 + $shadow_get day" +%j)
# 获取修改密码的年份
shadow_year=$(date -d "1970-1-1 + $shadow_get day" +%Y)
# 今天日期计数
now_day=$(date +%j)
# 今天的年份
now_year=$(date +%Y)

# 判断密码是否超过90天，可采取一些行动
if (( now_day + 365 * (now_year - shadow_year) - shadow_day > 90 )) 
    then echo "密码已过期"  
    else echo "密码在有效期内" 
fi